iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0

Day21-[Ruby]@@類別變數與@實體變數差異的比較(Part I)

在寫類別的時候,
常會遇到@(實體變數)
和@@(類別變數)
兩者之間有何差別呢?

@實體變數

存在實體裡的變數,
因此獨立在各個實體裡面,
不會影響到別的實體變數。

class Cat
  def initialize  
    @amount = 0
    @amount += 1
  end
  
  def how_many_cats
    puts "有 #{@amount} 隻貓"   
  end
end

kitty = Cat.new
kk = Cat.new

kitty.how_many_cats    #有 1 隻貓
kk.how_many_cats       #有 1 隻貓

@@類別變數

存在類別裡的變數,
會影響到同一類別內的實體變數。

class Cat
  @@amount = 0
  def initialize  
    @@amount += 1
  end
  
  def how_many_cats
    puts "有 #{@@amount} 隻貓"   
  end
end

kitty = Cat.new
kk = Cat.new

kitty.how_many_cats    #有 2 隻貓
kk.how_many_cats       #有 2 隻貓
tags: Ruby 實體變數 類別變數

上一篇
Day20-[Ruby]Proc, lambda比較
下一篇
Day22-[Ruby]@@類別變數與@實體變數差異的比較(Part II)
系列文
從零開始的工程師轉職之路.新手學Ruby / Ruby on Rails遇到的問題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言